#ifndef _GOVT_SCRIPT_HPP_
#define _GOVT_SCRIPT_HPP_

/*******************************************************************************
 ** Government Sanctioned Espionage RPG Server                                **
 ** http://www.government-sanctioned.us/                                      **
 **===========================================================================**
 ** Name: script.hpp                                                          **
 ** Description: Falcon scripting engine support.                             **
 **                                                                           **
 ** Open Source Initiative (OSI) Approved License                             **
 **                                                                           **
 ** The contents of this file are subject to the terms of the                 **
 ** Common Development and Distribution License, Version 1.0 only             **
 ** (the "License").  You may not use this file except in compliance          **
 ** with the License.                                                         **
 **                                                                           **
 ** You can find a copy of the license in the LICENSE file within             **
 ** this distribution or at $WIKI/display/GOVT/License-software.              **
 ** Software distributed under the License is distributed on an "AS IS"       **
 ** basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.           **
 ** See the License for the specific language governing permissions           **
 ** and limitations under the License.                                        **
 **                                                                           **
 ** When distributing Covered Code, include this CDDL header in each          **
 ** file and include the License file at $GAME_DIR/LICENSE.                   **
 ** If applicable, add the following below this header, with the indicated    **
 ** fields enclosed by brackets "[]" replaced with your own identifying       **
 ** information: Portions Copyright [yyyy] [name of copyright owner]          **
 **                                                                           **
 ** Copyright (c) 2009-2012  Barry Gian James <gian@gamingods.net>            **
 ** All rights reserved.                                                      **
 ******************************************************************************/
// $HeadURL$
// Modified $Date$ by $Author$
// $Id$

#include <falcon/function.h>
#include <falcon/string.h>
#include <falcon/fassert.h>
#include <falcon/trace.h>
#include <falcon/property.h>
#include <falcon/method.h>
#include <falcon/classes/classuser.h>

namespace Falcon {
class FalconApp: public Falcon::Application
{
public:
	int	m_exitValue;

	FalconApp();

	void	launch(const String &);
};

namespace Ext {

// exported functions
class FALCON_DYN_CLASS CharByName : public Function
{
public:
	CharByName() : Function("CharByName") { signature("S"); }
	virtual ~CharByName() { }
	virtual void invoke(VMContext * ctx, int32 params);

private:

};

// exported classes
/*
class FALCON_DYN_CLASS FClassQuest : public ClassUser
{
public:
	FClassQuest();
	virtual ~FClassQuest();

	virtual void store(VMContext *, DataWriter *, void *) const;
	virtual void restore(VMContext *, DataReader *, void *&) const;

	virtual void * createInstance() const;
	virtual bool op_init(VMContext *, void *, int) const;
	virtual void op_toString(VMContext *, void *) const;

private:
	class FALCON_DYN_CLASS method_CheckQuest : public Method
	{
	public:
		method_CheckQuest(ClassUser * o) : Method(o,"CheckQuest")
		{ signature("S,N"); addParam("name"); addParam("id");
		}
		virtual ~method_CheckQuest() { }
		virtual void invoke(VMContext * ctx, int 32 p = 0);
	} method_check_quest;

	class FALCON_DYN_CLASS property_ThreatLevel : public PropertyString
	{
	public:
		property_ThreatLevel(ClassUser * o) : PropertyString(o,"threat_level")
		{ }
		virtual ~ThreatLevel() { }
		virtual void set(void *, const Item &);
		virtual const String & getString(void *);
	} prop_threat_level;
};
*/

}	/* namespace Ext */
}	/* namespace Falcon */



#endif /* _GOVT_SCRIPT_HPP_ */
